home *** CD-ROM | disk | FTP | other *** search
- Path: uunet!cs.utexas.edu!sun-barr!newstop!sun!uunet.uu.net!microsoft!jimke
- From: microsoft!jimke@uunet.uu.net
- Newsgroups: comp.sources.x
- Subject: v09i094: patches for X11R4 for SCO UNIX, Part08/12
- Message-ID: <143668@sun.Eng.Sun.COM>
- Date: 12 Oct 90 05:20:32 GMT
- References: <csx-09i087:sco.patches@uunet.UU.NET>
- Sender: news@sun.Eng.Sun.COM
- Lines: 1316
- Approved: argv@sun.com
-
- Submitted-by: microsoft!jimke@uunet.uu.net
- Posting-number: Volume 9, Issue 94
- Archive-name: sco.patches/part08
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 8 (of 12)."
- # Contents: fix-14.sco08
- # Wrapped by jimke@kellman on Sat Oct 6 17:13:31 1990
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'fix-14.sco08' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'fix-14.sco08'\"
- else
- echo shar: Extracting \"'fix-14.sco08'\" \(42622 characters\)
- sed "s/^X//" >'fix-14.sco08' <<'END_OF_FILE'
- X*** ./mit-orig/server/ddx/ibm/sysV/OScursor.h Thu Oct 4 18:02:19 1990
- X--- ./mit/server/ddx/ibm/sysV/OScursor.h Mon Sep 17 10:45:31 1990
- X***************
- X*** 0 ****
- X--- 1,55 ----
- X+ /*
- X+ * Copyright IBM Corporation 1987,1988,1989
- X+ *
- X+ * All Rights Reserved
- X+ *
- X+ * Permission to use, copy, modify, and distribute this software and its
- X+ * documentation for any purpose and without fee is hereby granted,
- X+ * provided that the above copyright notice appear in all copies and that
- X+ * both that copyright notice and this permission notice appear in
- X+ * supporting documentation, and that the name of IBM not be
- X+ * used in advertising or publicity pertaining to distribution of the
- X+ * software without specific, written prior permission.
- X+ *
- X+ * IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- X+ * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- X+ * IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- X+ * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- X+ * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- X+ * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- X+ * SOFTWARE.
- X+ *
- X+ */
- X+ #ifndef OS_CURS
- X+ #define OS_CURS 1
- X+ /***********************************************************
- X+ Copyright IBM Corporation 1988
- X+ All Rights Reserved
- X+ Permission to use, copy, modify, and distribute this software and its
- X+ documentation for any purpose and without fee is hereby granted,
- X+ provided that the above copyright notice appear in all copies and that
- X+ both that copyright notice and this permission notice appear in
- X+ supporting documentation, and that the name of IBM not be
- X+ used in advertising or publicity pertaining to distribution of the
- X+ software without specific, written prior permission.
- X+ IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- X+ ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- X+ IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- X+ ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- X+ WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- X+ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- X+ SOFTWARE.
- X+ ******************************************************************/
- X+ /* $Header $ */
- X+ /* $Source $ */
- X+ #define OS_TellCursorPosition(x,y) \
- X+ { SYSVCurrentX = (x) ; SYSVCurrentY = (y) ; }
- X+ extern int SYSVSetCursorPosition() ;
- X+ extern void SYSVPointerNonInterestBox() ;
- X+ extern void SYSVConstrainCursor() ;
- X+ extern void SYSVCursorLimits() ;
- X+ #define OS_SetCursorPosition SYSVSetCursorPosition
- X+ #define OS_PointerNonInterestBox SYSVPointerNonInterestBox
- X+ #define OS_ConstrainCursor SYSVConstrainCursor
- X+ #define OS_CursorLimits SYSVCursorLimits
- X+ #endif /* ndef OS_CURSOR */
- X*** ./mit-orig/server/ddx/ibm/sysV/OSio.h Thu Oct 4 18:02:19 1990
- X--- ./mit/server/ddx/ibm/sysV/OSio.h Mon Sep 17 10:45:31 1990
- X***************
- X*** 0 ****
- X--- 1,93 ----
- X+ /*
- X+ * Copyright IBM Corporation 1987,1988,1989
- X+ *
- X+ * All Rights Reserved
- X+ *
- X+ * Permission to use, copy, modify, and distribute this software and its
- X+ * documentation for any purpose and without fee is hereby granted,
- X+ * provided that the above copyright notice appear in all copies and that
- X+ * both that copyright notice and this permission notice appear in
- X+ * supporting documentation, and that the name of IBM not be
- X+ * used in advertising or publicity pertaining to distribution of the
- X+ * software without specific, written prior permission.
- X+ *
- X+ * IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- X+ * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- X+ * IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- X+ * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- X+ * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- X+ * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- X+ * SOFTWARE.
- X+ *
- X+ */
- X+ #ifndef OS_IOH
- X+ #define OS_IOH 1
- X+ /***********************************************************
- X+ Copyright IBM Corporation 1988
- X+ All Rights Reserved
- X+ Permission to use, copy, modify, and distribute this software and its
- X+ documentation for any purpose and without fee is hereby granted,
- X+ provided that the above copyright notice appear in all copies and that
- X+ both that copyright notice and this permission notice appear in
- X+ supporting documentation, and that the name of IBM not be
- X+ used in advertising or publicity pertaining to distribution of the
- X+ software without specific, written prior permission.
- X+ IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- X+ ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- X+ IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- X+ ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- X+ WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- X+ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- X+ SOFTWARE.
- X+ ******************************************************************/
- X+ /* $Header $ */
- X+ /* $Source $ */
- X+ #define CURRENT_X() (SYSVCurrentX)
- X+ #define CURRENT_Y() (SYSVCurrentY)
- X+ #define KBD_LSHIFT 0x0001
- X+ #define KBD_RSHIFT 0x0002
- X+ #define KBD_LALT 0x0004
- X+ #define KBD_RALT 0x0008
- X+ #define KBD_CTRL 0x0010
- X+ #define KBD_MAKE 0x0100
- X+ #define KBD_RPT 0x0200
- X+ #define MSM_LBUTTON 4
- X+ #define MSM_MBUTTON 2
- X+ #define MSM_RBUTTON 1
- X+ #define MS_LBUTTON 32
- X+ #define MS_RBUTTON 16
- X+ #define MS_BUTTONS 48
- X+ #define MicroSoft 1
- X+ #define MouseSystems 0
- X+ extern int SYSVDefaultDisplay ;
- X+ extern int SYSVCurrentX ;
- X+ extern int SYSVCurrentY ;
- X+ extern int SYSVProcessArgument() ;
- X+ extern char * SYSVresolution;
- X+ extern char * SYSVPtrDev;
- X+ extern int SYSVMouseType;
- X+ extern int MSMPtrEvent();
- X+ extern int MSPtrEvent();
- X+ extern int (* SYSVPtrEvents)();
- X+ extern int SYSVMouseState;
- X+ extern int SYSVmouseFd;
- X+ extern int SYSVconsoleFd;
- X+ extern int SYSVconsoleNum;
- X+ extern void NoopDDA() ;
- X+ #define OS_BlockHandler NoopDDA
- X+ #define OS_WakeupHandler NoopDDA
- X+ #define OS_MouseProc SYSVMouseProc
- X+ #define OS_KeybdProc SYSVKeybdProc
- X+ #define OS_ProcessArgument SYSVProcessArgument
- X+ #define OS_CapsLockFeedback(dir) NoopDDA()
- X+ #define OS_PreScreenInit() SYSVMachineDependentInit()
- X+ #define OS_PostScreenInit() NoopDDA()
- X+ #define OS_ScreenStateChange(e) NoopDDA()
- X+ #define OS_GetDefaultScreens() SYSVGetDefaultScreens()
- X+ #define OS_InitInput() NoopDDA()
- X+ #define OS_AddAndRegisterOtherDevices() NoopDDA()
- X+ #define OS_SaveState() NoopDDA()
- X+ #define OS_RestoreState() NoopDDA()
- X+ #define OS_GiveUp() NoopDDA()
- X+ #define OS_Abort() NoopDDA()
- X+ #endif /* ndef OS_IOH */
- X*** ./mit-orig/server/ddx/ibm/sysV/Xibm.man Thu Oct 4 18:02:19 1990
- X--- ./mit/server/ddx/ibm/sysV/Xibm.man Mon Sep 17 10:45:30 1990
- X***************
- X*** 0 ****
- X--- 1,28 ----
- X+ .TH XIBM 1 "Release 4" "X Version 11"
- X+ .SH NAME
- X+ Xibm - VGA server for the X Window System
- X+ .SH DESCRIPTION
- X+ .PP
- X+ This driver supports the VGA display on a SYS V/386 3.2.
- X+ .PP
- X+ The VGA hardware is a color display. It supports 16 colors. You can currently
- X+ choose from following resolutions:
- X+ \fB 640x480 \fP
- X+ \fB 720x540 \fP
- X+ \fB 864x606 \fP
- X+ .SH OPTIONS
- X+ \fB-help\fP get some help for server specific options.
- X+ .sp
- X+ The server also takes all of the standard server options (See \fIXserver(1)\fP
- X+ for a complete list.)
- X+ .SH "SEE ALSO"
- X+ .PP
- X+ Xserver(1), xinit(1), X(1)
- X+ .SH COPYRIGHT
- X+ Copyright 1990, Thomas Roell (PizzaMan).
- X+ .br
- X+ See \fIX(1)\fP for a full statement of rights and permissions.
- X+ .SH AUTHORS
- X+ .PP
- X+ Thomas Roell (PizzaMan) wrote all SYS V/386 specific pieces.
- X+ Original code was done by IBM.
- X*** ./mit-orig/server/ddx/ibm/sysV/sysV386.s Thu Oct 4 18:02:19 1990
- X--- ./mit/server/ddx/ibm/sysV/sysV386.s Mon Sep 17 10:45:33 1990
- X***************
- X*** 0 ****
- X--- 1,41 ----
- X+ .text
- X+ .align 4
- X+ .globl inb
- X+ inb:
- X+ pushl %ebp
- X+ movl %esp,%ebp
- X+ movl 8(%ebp),%edx
- X+ subl %eax,%eax
- X+ inb (%dx)
- X+ leave
- X+ ret
- X+ .align 4
- X+ .globl outb
- X+ outb:
- X+ pushl %ebp
- X+ movl %esp,%ebp
- X+ movl 8(%ebp),%edx
- X+ movl 12(%ebp),%eax
- X+ outb (%dx)
- X+ leave
- X+ ret
- X+ .align 4
- X+ .globl inw
- X+ inw:
- X+ pushl %ebp
- X+ movl %esp,%ebp
- X+ movl 8(%ebp),%edx
- X+ subl %eax,%eax
- X+ inw (%dx)
- X+ leave
- X+ ret
- X+ .align 4
- X+ .globl outw
- X+ outw:
- X+ pushl %ebp
- X+ movl %esp,%ebp
- X+ movl 8(%ebp),%edx
- X+ movl 12(%ebp),%eax
- X+ outw (%dx)
- X+ leave
- X+ ret
- X*** ./mit-orig/server/ddx/ibm/sysV/sysVCursor.c Thu Oct 4 18:02:20 1990
- X--- ./mit/server/ddx/ibm/sysV/sysVCursor.c Mon Sep 17 16:57:31 1990
- X***************
- X*** 0 ****
- X--- 1,108 ----
- X+ /*
- X+ * Copyright IBM Corporation 1987,1988,1989
- X+ *
- X+ * All Rights Reserved
- X+ *
- X+ * Permission to use, copy, modify, and distribute this software and its
- X+ * documentation for any purpose and without fee is hereby granted,
- X+ * provided that the above copyright notice appear in all copies and that
- X+ * both that copyright notice and this permission notice appear in
- X+ * supporting documentation, and that the name of IBM not be
- X+ * used in advertising or publicity pertaining to distribution of the
- X+ * software without specific, written prior permission.
- X+ *
- X+ * IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- X+ * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- X+ * IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- X+ * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- X+ * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- X+ * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- X+ * SOFTWARE.
- X+ *
- X+ */
- X+ /***********************************************************
- X+ Copyright IBM Corporation 1987
- X+ All Rights Reserved
- X+ Permission to use, copy, modify, and distribute this software and its
- X+ documentation for any purpose and without fee is hereby granted,
- X+ provided that the above copyright notice appear in all copies and that
- X+ both that copyright notice and this permission notice appear in
- X+ supporting documentation, and that the name of IBM not be
- X+ used in advertising or publicity pertaining to distribution of the
- X+ software without specific, written prior permission.
- X+ IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- X+ ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- X+ IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- X+ ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- X+ WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- X+ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- X+ SOFTWARE.
- X+ ******************************************************************/
- X+ #include <stdio.h>
- X+ #include <sys/types.h>
- X+ #include <sys/file.h>
- X+ #define NEED_EVENTS
- X+ #include "X.h"
- X+ #include "Xproto.h"
- X+ #include "input.h"
- X+ #include "scrnintstr.h"
- X+ #include "cursorstr.h"
- X+ #include "miscstruct.h"
- X+ #include "OSio.h"
- X+ #include "ibmScreen.h"
- X+ #include "ibmIO.h"
- X+ #include "sysVCursor.h"
- X+ #include "ibmTrace.h"
- X+ /***============================================================***/
- X+ void
- X+ SYSVConstrainCursor( pScr, pBox )
- X+ register ScreenPtr pScr ;
- X+ register BoxPtr pBox ;
- X+ {
- X+ TRACE( ( "SYSVConstrainCursor(pScr=0x%x,pBox=0x%x)\n" ) ) ;
- X+ /* XXX -- not implemented yet */
- X+ return ;
- X+ }
- X+ /***============================================================***/
- X+ int
- X+ SYSVSetCursorPosition( pScr, x, y, generateEvent )
- X+ register ScreenPtr pScr;
- X+ register int x,y;
- X+ Bool generateEvent;
- X+ {
- X+ xEvent motion;
- X+ DevicePtr mouse;
- X+ TRACE(("SYSVSetCursorPosition( pScr= 0x%x, x= %d, y= %d )\n",pScr,x,y));
- X+ if (pScr->myNum!=ibmCurrentScreen) {
- X+ (*ibmHideCursor(ibmCurrentScreen))(ibmScreen(ibmCurrentScreen));
- X+ ibmCurrentScreen= pScr->myNum;
- X+ }
- X+ if (generateEvent) {
- X+ ProcessInputEvents();
- X+ motion.u.keyButtonPointer.rootX= x;
- X+ motion.u.keyButtonPointer.rootY= y;
- X+ motion.u.keyButtonPointer.time= lastEventTime;
- X+ motion.u.u.type= MotionNotify;
- X+ mouse= LookupPointerDevice();
- X+ (*mouse->processInputProc)(&motion,mouse);
- X+ }
- X+ SYSVCurrentX= x;
- X+ SYSVCurrentY= y;
- X+ (*(ibmCursorShow(pScr->myNum)))(x,y);
- X+ return TRUE;
- X+ }
- X+ /***============================================================***/
- X+ void
- X+ SYSVCursorLimits( pScr, pCurs, pHotBox, pTopLeftBox )
- X+ ScreenPtr pScr;
- X+ CursorPtr pCurs;
- X+ BoxPtr pHotBox;
- X+ BoxPtr pTopLeftBox;
- X+ {
- X+ TRACE(("SYSVCursorLimits( pScr= 0x%x, pCurs= 0x%x, pHotBox= 0x%x, pTopLeftBox= 0x%x)\n", pScr, pCurs, pHotBox, pTopLeftBox));
- X+ pTopLeftBox->x1= max( pHotBox->x1, 0 );
- X+ pTopLeftBox->y1= max( pHotBox->y1, 0 );
- X+ pTopLeftBox->x2= min( pHotBox->x2, pScr->width );
- X+ pTopLeftBox->y2= min( pHotBox->y2, pScr->height );
- X+ return ;
- X+ }
- X*** ./mit-orig/server/ddx/ibm/sysV/sysVCursor.h Thu Oct 4 18:02:20 1990
- X--- ./mit/server/ddx/ibm/sysV/sysVCursor.h Mon Sep 17 10:45:31 1990
- X***************
- X*** 0 ****
- X--- 1,45 ----
- X+ /*
- X+ * Copyright IBM Corporation 1987,1988,1989
- X+ *
- X+ * All Rights Reserved
- X+ *
- X+ * Permission to use, copy, modify, and distribute this software and its
- X+ * documentation for any purpose and without fee is hereby granted,
- X+ * provided that the above copyright notice appear in all copies and that
- X+ * both that copyright notice and this permission notice appear in
- X+ * supporting documentation, and that the name of IBM not be
- X+ * used in advertising or publicity pertaining to distribution of the
- X+ * software without specific, written prior permission.
- X+ *
- X+ * IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- X+ * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- X+ * IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- X+ * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- X+ * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- X+ * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- X+ * SOFTWARE.
- X+ *
- X+ */
- X+ #ifndef SYSV_CURS
- X+ #define SYSV_CURS 1
- X+ /***********************************************************
- X+ Copyright IBM Corporation 1987
- X+ All Rights Reserved
- X+ Permission to use, copy, modify, and distribute this software and its
- X+ documentation for any purpose and without fee is hereby granted,
- X+ provided that the above copyright notice appear in all copies and that
- X+ both that copyright notice and this permission notice appear in
- X+ supporting documentation, and that the name of IBM not be
- X+ used in advertising or publicity pertaining to distribution of the
- X+ software without specific, written prior permission.
- X+ IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- X+ ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- X+ IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- X+ ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- X+ WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- X+ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- X+ SOFTWARE.
- X+ ******************************************************************/
- X+ extern int SYSVSetCursorPosition();
- X+ extern void SYSVCursorLimits();
- X+ #endif /* SYSV_CURS */
- X*** ./mit-orig/server/ddx/ibm/sysV/sysVEvents.c Thu Oct 4 18:02:20 1990
- X--- ./mit/server/ddx/ibm/sysV/sysVEvents.c Mon Sep 17 16:57:32 1990
- X***************
- X*** 0 ****
- X--- 1,555 ----
- X+ /*
- X+ * Copyright IBM Corporation 1987,1988,1989
- X+ *
- X+ * All Rights Reserved
- X+ *
- X+ * Permission to use, copy, modify, and distribute this software and its
- X+ * documentation for any purpose and without fee is hereby granted,
- X+ * provided that the above copyright notice appear in all copies and that
- X+ * both that copyright notice and this permission notice appear in
- X+ * supporting documentation, and that the name of IBM not be
- X+ * used in advertising or publicity pertaining to distribution of the
- X+ * software without specific, written prior permission.
- X+ *
- X+ * IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- X+ * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- X+ * IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- X+ * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- X+ * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- X+ * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- X+ * SOFTWARE.
- X+ *
- X+ */
- X+ #include <sys/types.h>
- X+ #include <sys/times.h>
- X+ #define NEED_EVENTS
- X+ #define NEED_REPLIES
- X+ #include "X.h"
- X+ #include "Xproto.h"
- X+ #include "miscstruct.h"
- X+ #include "scrnintstr.h"
- X+ #include "cursorstr.h"
- X+ #include "input.h"
- X+ #include "inputstr.h"
- X+ #include "OScompiler.h"
- X+ #include "OSio.h"
- X+ #include "OScursor.h"
- X+ #include "ibmIO.h"
- X+ #include "ibmMouse.h"
- X+ #include "ibmKeybd.h"
- X+ #include "ibmScreen.h"
- X+ #include "ibmCmdArgs.h"
- X+ #include "sysVModKeys.h"
- X+ #include "ibmTrace.h"
- X+ extern int screenIsSaved;
- X+ extern int kbdType ;
- X+ static int delayed_left;
- X+ static int delayed_right;
- X+ static int delayed_middle;
- X+ static int lastButtons = 0x00 ;
- X+ static int pendingX;
- X+ static int pendingY;
- X+ static int SYSVreset = 0;
- X+ static long clock = 0;
- X+ int SYSVmouseFd = -1;
- X+ int SYSVconsoleFd = -1;
- X+ #ifdef sco
- X+ int SYSVconsoleNum = -1;
- X+ #endif
- X+ int SYSVMouseState = 0;
- X+ #define GET_OS_TIME() (GetTimeInMillis())
- X+ /***====================================================================***/
- X+ /*
- X+ * 11/19/88 (ef) -- XXX!! Not really sure where these should live.
- X+ * sysvCursor, maybe?
- X+ * Actually, once all of our systems give relative coordinates,
- X+ * this can move to common.
- X+ */
- X+ int SYSVCurrentX = 0;
- X+ int SYSVCurrentY = 0;
- X+ /***====================================================================***/
- X+ static void
- X+ SYSVFlushMouse()
- X+ {
- X+ register int x,y;
- X+ register ibmPerScreenInfo *screenInfo;
- X+ int oldScr;
- X+ int setCursor;
- X+ xEvent e;
- X+ TRACE(("SYSVFlushMouse\n"));
- X+ if ((pendingX)||(pendingY)) {
- X+ ibmAccelerate(pendingX,pendingY);
- X+ x= SYSVCurrentX+pendingX;
- X+ y= SYSVCurrentY-pendingY;
- X+ screenInfo = ibmScreens[ oldScr = ibmCurrentScreen ];
- X+ setCursor = FALSE;
- X+ if (ibmYWrapScreen) {
- X+ while ( y<0 ) {
- X+ y+= screenInfo->ibm_ScreenBounds.y2;
- X+ setCursor= TRUE;
- X+ }
- X+ while ( y>screenInfo->ibm_ScreenBounds.y2 ) {
- X+ y-= screenInfo->ibm_ScreenBounds.y2;
- X+ setCursor= TRUE;
- X+ }
- X+ }
- X+ while ( x<0 ) {
- X+ if ( screenInfo == ibmScreens[ 0 ] ) {
- X+ /* Already at first possible screen */
- X+ if ( ibmXWrapScreen ) {
- X+ screenInfo =
- X+ ibmScreens[ ibmCurrentScreen = ibmNumScreens -1 ];
- X+ x+= screenInfo->ibm_ScreenBounds.x2;
- X+ }
- X+ else {
- X+ x= 0;
- X+ }
- X+ }
- X+ else {
- X+ screenInfo= ibmScreens[ --ibmCurrentScreen ];
- X+ x+= screenInfo->ibm_ScreenBounds.x2;
- X+ }
- X+ setCursor= TRUE;
- X+ }
- X+ while ( x>screenInfo->ibm_ScreenBounds.x2 ) {
- X+ if ( screenInfo == ibmScreens[ ibmNumScreens - 1 ] ) {
- X+ /* Already at last possible screen */
- X+ if ( ibmXWrapScreen ) {
- X+ x-= screenInfo->ibm_ScreenBounds.x2;
- X+ screenInfo= ibmScreens[ ibmCurrentScreen = 0 ];
- X+ }
- X+ else {
- X+ x= screenInfo->ibm_ScreenBounds.x2;
- X+ }
- X+ }
- X+ else {
- X+ x-= screenInfo->ibm_ScreenBounds.x2; /* now x>0 */
- X+ screenInfo= ibmScreens[ ++ibmCurrentScreen ];
- X+ }
- X+ setCursor= TRUE;
- X+ }
- X+ if (y>screenInfo->ibm_ScreenBounds.y2) {
- X+ y= screenInfo->ibm_ScreenBounds.y2;
- X+ setCursor= TRUE;
- X+ }
- X+ if (y<0) {
- X+ y= 0;
- X+ setCursor= TRUE;
- X+ }
- X+ if (setCursor) {
- X+ /* OS-DEPENDENT MACRO GOES HERE!!
- X+ * MACRO DEFINED IN FILE ibmos.h
- X+ * TELL OS THAT CURSOR HAS MOVED
- X+ * TO A NEW POSITION
- X+ */
- X+ OS_TellCursorPosition(x,y);
- X+ }
- X+ #if defined(MULTIPLE_HEADS)
- X+ if ( oldScr != ibmCurrentScreen ) {
- X+ (*ibmHideCursor( oldScr ) )( oldScr ) ;
- X+ NewCurrentScreen( screenInfo->ibm_Screen, x, y ) ;
- X+ if ( screenInfo->ibm_CurrentCursor != ibmCurrentCursor( oldScr ) ) {
- X+ (* screenInfo->ibm_Screen->RealizeCursor )(
- X+ screenInfo->ibm_Screen,
- X+ ibmCurrentCursor( oldScr ) ) ;
- X+ }
- X+ (* screenInfo->ibm_Screen->DisplayCursor )(
- X+ screenInfo->ibm_Screen,
- X+ ibmCurrentCursor( oldScr ) ) ;
- X+ }
- X+ #endif /* MULTIPLE HEADS */
- X+ (* screenInfo->ibm_CursorShow )( x, y ) ;
- X+ e.u.u.type= MotionNotify;
- X+ e.u.keyButtonPointer.rootX= SYSVCurrentX= x;
- X+ e.u.keyButtonPointer.rootY= SYSVCurrentY= y;
- X+ e.u.keyButtonPointer.time= lastEventTime = GET_OS_TIME();
- X+ pendingX= pendingY= 0;
- X+ (*ibmPtr->processInputProc)(&e,ibmPtr,1);
- X+ }
- X+ }
- X+ /***====================================================================***/
- X+ /*
- X+ * All of this keyboard stuff needs to
- X+ * be reorganized anyway (into osKeymap.h and a single keyboard.c)
- X+ */
- X+ /***====================================================================***/
- X+ static int
- X+ SYSVKbdEvents()
- X+ {
- X+ DeviceIntPtr KeyboardPtr;
- X+ xEvent e;
- X+ int key,keymodifier,i,nBytes;
- X+ unsigned char rBuf[64];
- X+ Bool rpt;
- X+ static int lastkey = 0;
- X+ static int doomsday = 0;
- X+
- X+ if ((nBytes=read(SYSVconsoleFd,rBuf,64)) == 0) return 0;
- X+ for (i=0; i<nBytes; i++) {
- X+ key = ( rBuf[i] & 0x7f) + SYSV_MIN_KEY ;
- X+ TRACE(("SYSVKbdEvent (%d)\n",key));
- X+ if ((pendingX)||(pendingY))
- X+ SYSVFlushMouse();
- X+ e.u.keyButtonPointer.rootX= SYSVCurrentX;
- X+ e.u.keyButtonPointer.rootY= SYSVCurrentY;
- X+ e.u.keyButtonPointer.time= lastEventTime= GET_OS_TIME();
- X+ e.u.u.detail= key ;
- X+ rpt = (rBuf[i] == lastkey);
- X+ lastkey = rBuf[i];
- X+ KeyboardPtr = (DeviceIntPtr)ibmKeybd;
- X+ keymodifier = KeyboardPtr->key->modifierMap[key];
- X+ if (((!ibmKeyRepeat) || ( keymodifier != 0)) && rpt)
- X+ continue;
- X+ if (rpt) {
- X+ e.u.u.type= KeyRelease;
- X+ (*ibmKeybd->processInputProc)(&e,ibmKeybd,1);
- X+ e.u.u.type= KeyPress;
- X+ }
- X+ else if (rBuf[i] & 0x80) e.u.u.type= KeyRelease;
- X+ else e.u.u.type= KeyPress;
- X+ /*
- X+ * Handle Ctrl & Alt & Del as ServerShutdown !
- X+ */
- X+ switch (key) {
- X+ case Sysv_Delete:
- X+ doomsday = (doomsday | 0x4) ^ ((rBuf[i] & 0x80)>>5);
- X+ break;
- X+ case Sysv_Alt_L:
- X+ doomsday = (doomsday | 0x2) ^ ((rBuf[i] & 0x80)>>6);
- X+ break;
- X+ case Sysv_Control_L:
- X+ doomsday = (doomsday | 0x1) ^ ((rBuf[i] & 0x80)>>7);
- X+ break;
- X+ }
- X+ if ((!ibmDontZap) && (doomsday == 7)) GiveUp();
- X+ /*
- X+ * toggle lock & numlock shift keys:
- X+ * ignore releases, toggle on & off on presses
- X+ */
- X+ if( keymodifier & ( LockMask | NumLockMask))
- X+ {
- X+ if( e.u.u.type == KeyRelease )
- X+ break;
- X+ if( KeyboardPtr->key->down[key >> 3] & (1 << (key & 7)) )
- X+ {
- X+ e.u.u.type = KeyRelease;
- X+ }
- X+ }
- X+ (*ibmKeybd->processInputProc)(&e,ibmKeybd,1);
- X+ }
- X+ return(nBytes);
- X+ }
- X+ /***====================================================================***/
- X+ #define NONE 0x00
- X+ #define LEFT Button1
- X+ #define MIDDLE Button2
- X+ #define RIGHT Button3
- X+ #define UP ButtonRelease
- X+ #define DOWN ButtonPress
- X+ /*
- X+ * 11/17/88 (ef) -- XXX! This function should be revisited. It
- X+ * seems awfully large and complicated. Two options leap to
- X+ * to the fore: a) just delay for a bit and check for new
- X+ * events or go to a finite-state machine.
- X+ */
- X+ int
- X+ MSPtrEvent(pMouse)
- X+ DevicePtr pMouse;
- X+ {
- X+ extern int SYSVMouseChordDelay;
- X+ static int buttons;
- X+ static int DeltaX,DeltaY;
- X+ int i,nBytes;
- X+ unsigned char rBuf[64];
- X+ int changed;
- X+ xEvent e;
- X+ nBytes = read(SYSVmouseFd,&rBuf,64);
- X+ for ( i=0; i <=nBytes; i++) {
- X+ if (i != nBytes) {
- X+ switch(SYSVMouseState) {
- X+ case 0:
- X+ if ((rBuf[i] & 0x40) == 0x40) {
- X+ buttons= rBuf[i] & 0x30;
- X+ DeltaY = (signed char)((rBuf[i] &0xC) <<4);
- X+ DeltaX = (signed char)((rBuf[i] &0x3) <<6);
- X+ SYSVMouseState++; }
- X+ break;
- X+ case 1:
- X+ DeltaX |= (signed char)(rBuf[i]&0x3F);
- X+ SYSVMouseState++;
- X+ break;
- X+ case 2:
- X+ DeltaY |= (signed char)(rBuf[i]&0x3F);
- X+ SYSVMouseState = 0;
- X+ break;
- X+ }
- X+ }
- X+ if (SYSVMouseState == 0) {
- X+ TRACE(("SYSVPtrEvent (%d,%d)\n", DeltaX, DeltaY));
- X+ pendingX+= DeltaX;
- X+ pendingY-= DeltaY;
- X+ if (pendingX||pendingY)
- X+ SYSVFlushMouse();
- X+ DeltaX = DeltaY = 0;
- X+ e.u.keyButtonPointer.rootX= SYSVCurrentX;
- X+ e.u.keyButtonPointer.rootY= SYSVCurrentY;
- X+ e.u.keyButtonPointer.time= GET_OS_TIME();
- X+ if ((i != nBytes) || ((e.u.keyButtonPointer.time - lastEventTime) > 225))
- X+ {
- X+ switch(lastButtons)
- X+ {
- X+ case NONE :
- X+ switch(buttons)
- X+ {
- X+ case NONE :
- X+ break;
- X+ case MS_LBUTTON :
- X+ delayed_left = TRUE;
- X+ break;
- X+ case MS_RBUTTON :
- X+ delayed_right = TRUE;
- X+ break;
- X+ case MS_BUTTONS :
- X+ e.u.u.detail= MIDDLE;
- X+ e.u.u.type= DOWN;
- X+ (*ibmPtr->processInputProc)(&e,ibmPtr,1);
- X+ break;
- X+ }
- X+ break;
- X+ case MS_LBUTTON :
- X+ switch(buttons)
- X+ {
- X+ case NONE :
- X+ if (delayed_left) {
- X+ e.u.u.detail= LEFT;
- X+ e.u.u.type= DOWN;
- X+ (*ibmPtr->processInputProc)(&e,ibmPtr,1);
- X+ delayed_left = FALSE;
- X+ }
- X+ if (delayed_middle) {
- X+ e.u.u.detail= MIDDLE;
- X+ e.u.u.type= UP;
- X+ (*ibmPtr->processInputProc)(&e,ibmPtr,1);
- X+ delayed_middle = FALSE;
- X+ } else {
- X+ e.u.u.detail= LEFT;
- X+ e.u.u.type= UP;
- X+ (*ibmPtr->processInputProc)(&e,ibmPtr,1);
- X+ }
- X+ break;
- X+ case MS_LBUTTON :
- X+ if (delayed_left) {
- X+ e.u.u.detail= LEFT;
- X+ e.u.u.type= DOWN;
- X+ (*ibmPtr->processInputProc)(&e,ibmPtr,1);
- X+ delayed_left = FALSE;
- X+ }
- X+ break;
- X+ case MS_RBUTTON :
- X+ if (delayed_left) {
- X+ e.u.u.detail= LEFT;
- X+ e.u.u.type= DOWN;
- X+ (*ibmPtr->processInputProc)(&e,ibmPtr,1);
- X+ delayed_left = FALSE;
- X+ }
- X+ e.u.u.detail= LEFT;
- X+ e.u.u.type= UP;
- X+ (*ibmPtr->processInputProc)(&e,ibmPtr,1);
- X+ delayed_right = TRUE;
- X+ break;
- X+ case MS_BUTTONS :
- X+ if (delayed_left) {
- X+ e.u.u.detail= MIDDLE;
- X+ e.u.u.type= DOWN;
- X+ (*ibmPtr->processInputProc)(&e,ibmPtr,1);
- X+ delayed_left = FALSE;
- X+ } else if (!delayed_middle) {
- X+ e.u.u.detail= LEFT;
- X+ e.u.u.type= UP;
- X+ (*ibmPtr->processInputProc)(&e,ibmPtr,1);
- X+ e.u.u.detail= MIDDLE;
- X+ e.u.u.type= DOWN;
- X+ (*ibmPtr->processInputProc)(&e,ibmPtr,1);
- X+ }
- X+ break;
- X+ }
- X+ break;
- X+ case MS_RBUTTON :
- X+ switch(buttons)
- X+ {
- X+ case NONE :
- X+ if (delayed_right) {
- X+ e.u.u.detail= RIGHT;
- X+ e.u.u.type= DOWN;
- X+ (*ibmPtr->processInputProc)(&e,ibmPtr,1);
- X+ delayed_right = FALSE;
- X+ }
- X+ if (delayed_middle) {
- X+ e.u.u.detail= MIDDLE;
- X+ e.u.u.type= UP;
- X+ (*ibmPtr->processInputProc)(&e,ibmPtr,1);
- X+ delayed_middle = FALSE;
- X+ } else {
- X+ e.u.u.detail= RIGHT;
- X+ e.u.u.type= UP;
- X+ (*ibmPtr->processInputProc)(&e,ibmPtr,1);
- X+ }
- X+ break;
- X+ case MS_LBUTTON :
- X+ if (delayed_right) {
- X+ e.u.u.detail= RIGHT;
- X+ e.u.u.type= DOWN;
- X+ (*ibmPtr->processInputProc)(&e,ibmPtr,1);
- X+ delayed_right = FALSE;
- X+ }
- X+ e.u.u.detail= RIGHT;
- X+ e.u.u.type= UP;
- X+ (*ibmPtr->processInputProc)(&e,ibmPtr,1);
- X+ delayed_left = TRUE;
- X+ break;
- X+ case MS_RBUTTON :
- X+ if (delayed_right) {
- X+ e.u.u.detail= RIGHT;
- X+ e.u.u.type= DOWN;
- X+ (*ibmPtr->processInputProc)(&e,ibmPtr,1);
- X+ delayed_right = FALSE;
- X+ }
- X+ break;
- X+ case MS_BUTTONS :
- X+ if (delayed_right) {
- X+ e.u.u.detail= MIDDLE;
- X+ e.u.u.type= DOWN;
- X+ (*ibmPtr->processInputProc)(&e,ibmPtr,1);
- X+ delayed_right = FALSE;
- X+ } else if (!delayed_middle) {
- X+ e.u.u.detail= RIGHT;
- X+ e.u.u.type= UP;
- X+ (*ibmPtr->processInputProc)(&e,ibmPtr,1);
- X+ e.u.u.detail= MIDDLE;
- X+ e.u.u.type= DOWN;
- X+ (*ibmPtr->processInputProc)(&e,ibmPtr,1);
- X+ }
- X+ break;
- X+ }
- X+ break;
- X+ case MS_BUTTONS :
- X+ switch(buttons)
- X+ {
- X+ case NONE :
- X+ e.u.u.detail= MIDDLE;
- X+ e.u.u.type= UP;
- X+ (*ibmPtr->processInputProc)(&e,ibmPtr,1);
- X+ break;
- X+ case MS_LBUTTON :
- X+ case MS_RBUTTON :
- X+ delayed_middle = TRUE;
- X+ break;
- X+ case MS_BUTTONS :
- X+ break;
- X+ }
- X+ break;
- X+ }
- X+ lastButtons = buttons;
- X+ }
- X+ }
- X+ }
- X+ return(nBytes);
- X+ }
- X+ /***====================================================================***/
- X+ int
- X+ MSMPtrEvent()
- X+ {
- X+ extern int SYSVMouseChordDelay;
- X+ static int buttons;
- X+ static int DeltaX,DeltaY;
- X+ xEvent e;
- X+ int i,nBytes;
- X+ unsigned char rBuf[64];
- X+ int changed;
- X+ if ((nBytes = read(SYSVmouseFd,&rBuf,64)) == 0) return(0);
- X+ for ( i=0; i < nBytes; i++) {
- X+ switch(SYSVMouseState) {
- X+ case 0:
- X+ if ((rBuf[i] & 0xF8) == 0x80) {
- X+ buttons = (~rBuf[i]) & 0x07;
- X+ SYSVMouseState++; }
- X+ break;
- X+ case 1:
- X+ DeltaX=(signed char)rBuf[i];
- X+ SYSVMouseState++;
- X+ break;
- X+ case 2:
- X+ DeltaY=(signed char)rBuf[i];
- X+ SYSVMouseState++;
- X+ break;
- X+ case 3:
- X+ DeltaX=(signed char)rBuf[i];
- X+ SYSVMouseState++;
- X+ break;
- X+ case 4:
- X+ DeltaY=(signed char)rBuf[i];
- X+ SYSVMouseState=0;
- X+ break;
- X+ }
- X+ if (SYSVMouseState == 0) {
- X+ TRACE(("MSM_PtrEvent (%d,%d)\n", DeltaX,DeltaY));
- X+ pendingX+= DeltaX;
- X+ pendingY+= DeltaY;
- X+ if (pendingX||pendingY)
- X+ SYSVFlushMouse();
- X+ e.u.keyButtonPointer.rootX= SYSVCurrentX;
- X+ e.u.keyButtonPointer.rootY= SYSVCurrentY;
- X+ e.u.keyButtonPointer.time= GET_OS_TIME();
- X+ changed = buttons ^ lastButtons;
- X+ if (changed & MSM_LBUTTON) {
- X+ if (buttons & MSM_LBUTTON) e.u.u.type = DOWN;
- X+ else e.u.u.type = UP;
- X+ e.u.u.detail= LEFT;
- X+ (*ibmPtr->processInputProc)(&e,ibmPtr,1);
- X+ }
- X+ if (changed & MSM_RBUTTON) {
- X+ if (buttons & MSM_RBUTTON) e.u.u.type = DOWN;
- X+ else e.u.u.type = UP;
- X+ e.u.u.detail= RIGHT;
- X+ (*ibmPtr->processInputProc)(&e,ibmPtr,1);
- X+ }
- X+ if (changed & MSM_MBUTTON) {
- X+ if (buttons & MSM_MBUTTON) e.u.u.type = DOWN;
- X+ else e.u.u.type = UP;
- X+ e.u.u.detail= MIDDLE;
- X+ (*ibmPtr->processInputProc)(&e,ibmPtr,1);
- X+ }
- X+ lastButtons = buttons;
- X+ }
- X+ }
- X+ return(nBytes);
- X+ }
- X+ /***====================================================================***/
- X+ void
- X+ ProcessInputEvents ()
- X+ {
- X+ TRACE(("ProcessInputEvents\n"));
- X+ #ifdef IBM_SPECIAL_MALLOC
- X+ if (ibmShouldDumpArena) {
- X+ ibmDumpArena();
- X+ }
- X+ #endif /* IBM_SPECIAL_MALLOC */
- X+ /*
- X+ * So long as one event from either device remains unprocess, we loop:
- X+ * Take the oldest remaining event and pass it to the proper module
- X+ * for processing. The DDXEvent will be sent to ProcessInput by the
- X+ * function called.
- X+ */
- X+ while (1) {
- X+ if (((* SYSVPtrEvents)() == 0) &&
- X+ (SYSVKbdEvents() == 0))
- X+ break;
- X+ lastEventTime = GetTimeInMillis();
- X+ if (screenIsSaved == SCREEN_SAVER_ON) {
- X+ SaveScreens(SCREEN_SAVER_OFF, ScreenSaverReset);
- X+ }
- X+ }
- X+ if (pendingX||pendingY)
- X+ SYSVFlushMouse();
- X+ return;
- X+ }
- X*** ./mit-orig/server/ddx/ibm/sysV/sysVInit.c Thu Oct 4 18:02:21 1990
- X--- ./mit/server/ddx/ibm/sysV/sysVInit.c Mon Sep 17 10:45:32 1990
- X***************
- X*** 0 ****
- X--- 1,91 ----
- X+ /*
- X+ * Copyright IBM Corporation 1987,1988,1989
- X+ *
- X+ * All Rights Reserved
- X+ *
- X+ * Permission to use, copy, modify, and distribute this software and its
- X+ * documentation for any purpose and without fee is hereby granted,
- X+ * provided that the above copyright notice appear in all copies and that
- X+ * both that copyright notice and this permission notice appear in
- X+ * supporting documentation, and that the name of IBM not be
- X+ * used in advertising or publicity pertaining to distribution of the
- X+ * software without specific, written prior permission.
- X+ *
- X+ * IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- X+ * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- X+ * IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- X+ * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- X+ * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- X+ * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- X+ * SOFTWARE.
- X+ *
- X+ */
- X+ #include <sys/types.h>
- X+ #include <sys/file.h>
- X+ #include <sys/fcntl.h>
- X+ #ifdef sco
- X+ #include <sys/vtkd.h>
- X+ #else
- X+ #include <sys/vt.h>
- X+ #endif
- X+ #include <stdio.h>
- X+ #include "Xmd.h"
- X+ #include "miscstruct.h"
- X+ #include "scrnintstr.h"
- X+ #include "cursor.h"
- X+ #include "ibmScreen.h"
- X+ #include "OSio.h"
- X+ #include "ibmTrace.h"
- X+ /***====================================================================***/
- X+ int SYSVDefaultDisplay= 0;
- X+ void
- X+ SYSVMachineDependentInit()
- X+ {
- X+ int tmp;
- X+ long ttyno;
- X+ char vtname[10];
- X+ extern int errno;
- X+ TRACE(("SYSVMachineDependentInit()\n"));
- X+ #ifdef sco
- X+ strcpy(vtname, ttyname(0));
- X+ if (strcmp(vtname, "/dev/syscon"))
- X+ SYSVconsoleNum = atoi( vtname [strlen(vtname)-2] ) - 1;
- X+ else
- X+ SYSVconsoleNum = 0;
- X+
- X+ /*
- X+ * For SCO we will detach from the controlling terminal now
- X+ * that we got a handle on the situation.
- X+ */
- X+
- X+ close(0);
- X+ close(1);
- X+ setpgrp();
- X+
- X+ if ((SYSVconsoleFd = open(vtname, O_RDWR | O_NDELAY, 0)) < 0)
- X+ ErrorF ("Opening the display (%s, %d)\n", vtname, errno);
- X+ #else
- X+ if ((tmp = open("/dev/console",O_RDONLY,0)) <0)
- X+ ErrorF("Opening /dev/console\n");
- X+ if (ioctl(tmp, VT_OPENQRY, &ttyno) <0)
- X+ ErrorF("Finding free virtual terminal\n");
- X+ close(tmp);
- X+ sprintf(vtname,"/dev/vt0%1d",ttyno);
- X+ if ((SYSVconsoleFd = open(vtname, O_RDWR | O_NDELAY, 0)) < 0)
- X+ ErrorF ("Opening the display (%s, %d)\n", vtname, errno);
- X+ #endif
- X+
- X+ TRACE(("Init: %d,%s\n",SYSVconsoleFd,vtname));
- X+ return;
- X+ }
- X+ /***====================================================================***/
- X+ char * SYSVresolution = "640x480";
- X+ void
- X+ SYSVGetDefaultScreens()
- X+ {
- X+ TRACE(("SYSVGetDefaultScreens()\n"));
- X+ /*
- X+ * add defaults Flag for resolution 640x480
- X+ */
- X+ return;
- X+ }
- X*** ./mit-orig/server/ddx/ibm/sysV/sysVKeybd.c Thu Oct 4 18:02:21 1990
- X--- ./mit/server/ddx/ibm/sysV/sysVKeybd.c Fri Sep 28 11:25:36 1990
- X***************
- X*** 0 ****
- X--- 1,206 ----
- X+ /*
- X+ * Copyright IBM Corporation 1987,1988,1989
- X+ *
- X+ * All Rights Reserved
- X+ *
- X+ * Permission to use, copy, modify, and distribute this software and its
- X+ * documentation for any purpose and without fee is hereby granted,
- X+ * provided that the above copyright notice appear in all copies and that
- X+ * both that copyright notice and this permission notice appear in
- X+ * supporting documentation, and that the name of IBM not be
- X+ * used in advertising or publicity pertaining to distribution of the
- X+ * software without specific, written prior permission.
- X+ *
- X+ * IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- X+ * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- X+ * IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- X+ * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- X+ * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- X+ * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- X+ * SOFTWARE.
- X+ *
- X+ */
- X+ /***********************************************************
- X+ Copyright IBM Corporation 1987,1988
- X+ All Rights Reserved
- X+ Permission to use, copy, modify, and distribute this software and its
- X+ documentation for any purpose and without fee is hereby granted,
- X+ provided that the above copyright notice appear in all copies and that
- X+ both that copyright notice and this permission notice appear in
- X+ supporting documentation, and that the name of IBM not be
- X+ used in advertising or publicity pertaining to distribution of the
- X+ software without specific, written prior permission.
- X+ IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- X+ ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- X+ IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- X+ ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- X+ WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- X+ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- X+ SOFTWARE.
- X+ ******************************************************************/
- X+ #include <stdio.h>
- X+ #include <sys/types.h>
- X+ #include <sys/file.h>
- X+ #include <sys/fcntl.h>
- X+ #include <sys/termio.h>
- X+ #ifdef sco
- X+ #include <sys/vtkd.h>
- X+ #else
- X+ #include <sys/at_ansi.h>
- X+ #include <sys/kd.h>
- X+ #include <sys/vt.h>
- X+ #endif
- X+ #include "X.h"
- X+ #include "Xmd.h"
- X+ #include "input.h"
- X+ #include "miscstruct.h"
- X+ #include "scrnintstr.h"
- X+ #include "keysym.h"
- X+ #include "cursorstr.h"
- X+ #include "sysVModKeys.h"
- X+ #include "sysVKeymap.h"
- X+ #include "ibmIO.h"
- X+ #include "ibmKeybd.h"
- X+ #include "ibmScreen.h"
- X+ #include "ibmTrace.h"
- X+ #include "OSio.h"
- X+ /***============================================================***/
- X+ static void
- X+ SYSVChangeKeyboardControl(pDevice,ctrl)
- X+ DevicePtr pDevice;
- X+ KeybdCtrl *ctrl;
- X+ {
- X+ int volume;
- X+ TRACE(("SYSVChangeKeyboardControl(pDev=0x%x,ctrl=0x%x)\n",pDevice,ctrl));
- X+ ibmKeyClick = ctrl->click;
- X+ /* X specifies duration in milliseconds, RT in 1/128th's of a second */
- X+ ibmBellPitch= ctrl->bell_pitch;
- X+ ibmBellDuration= ((double)ctrl->bell_duration)*(128.0/1000.0);
- X+ ibmKeyRepeat= ctrl->autoRepeat;
- X+ ioctl(SYSVconsoleFd, KDSETLED, (ibmLEDState=ctrl->leds));
- X+ return;
- X+ }
- X+ /***============================================================***/
- X+
- X+ static void
- X+ SYSVBell(loud, pDevice)
- X+ int loud;
- X+ DevicePtr pDevice;
- X+ {
- X+ TRACE(("SYSVBell(loud= %d, pDev= 0x%x)\n",loud,pDevice));
- X+
- X+ #ifdef sco
- X+ ioctl(SYSVconsoleFd, KIOCSOUND, ibmBellPitch << 2);
- X+ nap(ibmBellDuration << 4);
- X+ ioctl(SYSVconsoleFd, KIOCSOUND, 0);
- X+ #else
- X+ ioctl(SYSVconsoleFd, KDMKTONE, (ibmBellDuration << 16) | ibmBellPitch);
- X+ #endif
- X+ return;
- X+ }
- X+ /***============================================================***/
- X+ Bool
- X+ LegalModifier (key)
- X+ BYTE key;
- X+ {
- X+ TRACE(("LegalModifier(key= 0x%x)\n",key));
- X+ if ((key==Sysv_Control_L) || (key==Sysv_Shift_L) || (key==Sysv_Shift_R) ||
- X+ (key==Sysv_Caps_Lock) || (key==Sysv_Alt_L) || (key==Sysv_Alt_R) ||
- X+ (key==Sysv_Control_R))
- X+ return TRUE ;
- X+ else
- X+ return FALSE;
- X+ }
- X+ /***============================================================***/
- X+ extern int ibmUsePCKeys;
- X+ int kbdType ;
- X+ SYSVGetKbdMappings(pKeySyms, pModMap)
- X+ KeySymsPtr pKeySyms;
- X+ CARD8 *pModMap;
- X+ {
- X+ register int i;
- X+ TRACE(("SYSVGetKbdMappings( pKeySyms= 0x%x, pModMap= 0x%x )\n",
- X+ pKeySyms,pModMap));
- X+ for (i = 0; i < MAP_LENGTH; i++)
- X+ pModMap[i] = NoSymbol;
- X+ if (ibmUsePCKeys) {
- X+ pModMap[ Sysv_Control_L ] = LockMask;
- X+ pModMap[ Sysv_Caps_Lock ] = ControlMask;
- X+ }
- X+ else {
- X+ pModMap[ Sysv_Caps_Lock ] = LockMask;
- X+ pModMap[ Sysv_Control_L ] = ControlMask;
- X+ }
- X+ pModMap[ Sysv_Control_R ] = ControlMask;
- X+ pModMap[ Sysv_Shift_L ] = ShiftMask;
- X+ pModMap[ Sysv_Shift_R ] = ShiftMask;
- X+ pModMap[ Sysv_Num_Lock ] = NumLockMask;
- X+ pModMap[ Sysv_Alt_L ] = Mod1Mask;
- X+ pModMap[ Sysv_Alt_R ] = Mod1Mask;
- X+ pKeySyms->minKeyCode= SYSV_MIN_KEY;
- X+ pKeySyms->maxKeyCode= SYSV_MAX_KEY;
- X+ pKeySyms->mapWidth= SYSV_GLYPHS_PER_KEY;
- X+ pKeySyms->map= sysvmap;
- X+ }
- X+ /***============================================================***/
- X+ int
- X+ SYSVKeybdProc(pDev, onoff, argc, argv)
- X+ DevicePtr pDev;
- X+ int onoff;
- X+ int argc;
- X+ char *argv[];
- X+ {
- X+ KeySymsRec keySyms;
- X+ CARD8 modMap[MAP_LENGTH];
- X+ struct termio tty;
- X+ static int SYSVKbdTrans;
- X+ static struct termio SYSVKbdTTY;
- X+ TRACE(("SYSVKeybdProc( pDev= 0x%x, onoff= 0x%x )\n",pDev,onoff));
- X+ switch (onoff)
- X+ {
- X+ case DEVICE_INIT:
- X+ ioctl (SYSVconsoleFd, KDGKBMODE, &SYSVKbdTrans);
- X+ ioctl (SYSVconsoleFd, TCGETA, &SYSVKbdTTY);
- X+ pDev->on = FALSE;
- X+ ibmKeybd = pDev;
- X+ SYSVGetKbdMappings( &keySyms, modMap );
- X+ InitKeyboardDeviceStruct(
- X+ ibmKeybd, &keySyms, modMap, SYSVBell,
- X+ SYSVChangeKeyboardControl);
- X+ break;
- X+ case DEVICE_ON:
- X+ /*
- X+ * Set the keyboard into "direct" mode and turn on
- X+ * event translation.
- X+ */
- X+ ioctl (SYSVconsoleFd, KDSKBMODE, K_RAW);
- X+ tty = SYSVKbdTTY;
- X+ tty.c_iflag = (IGNPAR | IGNBRK) & (~PARMRK) & (~ISTRIP);
- X+ tty.c_oflag = 0;
- X+ tty.c_cflag = CREAD | CS8 | B9600;
- X+ tty.c_lflag = 0;
- X+ tty.c_cc[VINTR]=0;
- X+ tty.c_cc[VQUIT]=0;
- X+ tty.c_cc[VERASE]=0;
- X+ tty.c_cc[VKILL]=0;
- X+ tty.c_cc[VEOF]=0;
- X+ tty.c_cc[VEOL]=0;
- X+ tty.c_cc[VTIME]=0;
- X+ tty.c_cc[VMIN]=1;
- X+ ioctl (SYSVconsoleFd, TCSETA, &tty);
- X+ AddEnabledDevice(SYSVconsoleFd);
- X+ pDev->on = TRUE;
- X+ break;
- X+ case DEVICE_CLOSE:
- X+ case DEVICE_OFF:
- X+ /*
- X+ * Restore original keyboard directness and translation.
- X+ */
- X+ ioctl (SYSVconsoleFd, TCSETA, &SYSVKbdTTY);
- X+ ioctl (SYSVconsoleFd, KDSKBMODE, SYSVKbdTrans);
- X+ RemoveEnabledDevice(SYSVconsoleFd);
- X+ pDev->on = FALSE;
- X+ break;
- X+ }
- X+ return (Success);
- X+ }
- END_OF_FILE
- if test 42622 -ne `wc -c <'fix-14.sco08'`; then
- echo shar: \"'fix-14.sco08'\" unpacked with wrong size!
- fi
- # end of 'fix-14.sco08'
- fi
- echo shar: End of archive 8 \(of 12\).
- cp /dev/null ark8isdone
- MISSING=""
- for I in 1 2 3 4 5 6 7 8 9 10 11 12 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 12 archives.
- echo "instructions are in fix-14.sco01"
- rm -f ark[1-9]isdone ark[1-9][0-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
-
-
- dan
- ----------------------------------------------------
- O'Reilly && Associates argv@sun.com / argv@ora.com
- Opinions expressed reflect those of the author only.
-